<?php
/**
 * @package		orcamento	
 * @desc		Componente voltado to listar produtor e entreoutros
 * @author	    Lucas Emmanoel Araujo Machado (lucasemmanoel@gmail.com).
 * @since		2011-04-10	
 * @abstract	Controlador do Componente
 */

// Não permite o acesso direto ao arquivo.
defined( '_JEXEC' ) or die( 'Restricted access' );

class OrcamentosControllerOrcamento extends OrcamentosController
{
	var $link = 'index.php?option=com_orcamento';
	/*
	 * Constructor (registra tarefas adicionais ao método)
	 */
	function __construct( )
	{
		parent::__construct( );
		// Registra task add como edit
		$this->registerTask( 'add'  , 	'edit' );
	}

	/**
	 * Exibe o formulário para adição/edição de dados.
	 */
	function edit( )
	{
		JRequest::setVar( 'view', 'orcamento' );
		JRequest::setVar( 'layout', 'default'  );
		JRequest::setVar('hidemainmenu', 1);
		parent::display( );
	}

	function carrinho_cotacao(){
		JRequest::checkToken() or jexit( 'Invalid Token' );

		$dados = JRequest::get();

		$model = $this->getModel( 'orcamento' );
		if($model->addItem($dados)){
			$msg = JText::_( 'Informações registradas' );
		}
		else{
			$msg = JText::_( 'Informações não registradas' );
		}
		$link = $this->link."&view=orcamento&id_categoria={$dados['id_categoria']}";
		$this->setRedirect( $link, $msg );
	}

	function remove_item(){
		$dados = JRequest::get();
		$model = $this->getModel( 'orcamento' );
		$model->removeItem($dados);
		$link = $this->link."&view=orcamento&layout=carrinho";
		$this->setRedirect( $link, $msg );
	}

	/**
	 * Salva um registro (e direciona para a página principal).
	 */
	function Cadastrar( )
	{
		// Check for request forgeries
		JRequest::checkToken() or jexit( 'Invalid Token' );

		// Recupera o model
		$model = $this->getModel( 'orcamento' );
		
		$data = JRequest::get( 'post' );

		// Verifica se o model esta armazenando os dados
		if ( $model->store( $data ) )
		{
			$msg = JText::_( 'Informações registradas' );
		}
		else
		{
			// Retorna o erro gerado no model
			JError::raiseWarning( 100, 'Erro ao salvar as informações. ' . $model->getError( ) );
		}
		$link = $this->link."&view=cliente";
		$this->setRedirect( $link, $msg );
	}

	/**
	 * Remove registro(s).
	 */
	function remove( )
	{
		// Recupera o model
		$model = $this->getModel( 'orcamento' );

		// Verifica se o model esta removendo os dados
		if( $model->delete( ) )
		{
			$msg = JText::_( 'Registro(s) removido(s) com sucesso!' );
		}
		else
		{
			// Retorna o erro gerado no model
			JError::raiseWarning( 100, 'Erro ao deletar as informações. ' . $model->getError( ) );
		}
		$link = $this->link;
                $this->setRedirect( $link , $msg );
	}

	/**
	 * Cancela a edição de um registro.
	 */
	function cancel( )
	{
		JError::raiseNotice( 100, JText::_( 'Operação cancelada' ) );
		$link = $this->link;
                $this->setRedirect( $link );
	}
	
	
	public function registerUser( $data )
	{
		global $mainframe;

		// Initialize some variables
		$acl		=& JFactory::getACL();

		// Create a new JUser object
		$user = new JUser();

		// Bind the post array to the user object
		if (!$user->bind( JRequest::get('post'), 'usertype' )) {
			JError::raiseError( 500, $user->getError());
		}

		// Set some initial user values
		$user->set('id', 0);
		$user->set( 'name' , $data['nome'] );
		$user->set('usertype', 'Registered');
		$user->set('gid', $acl->get_group_id( '', $newUsertype, 'ARO' ));
		$user->set('sendEmail', 0);

		jimport('joomla.user.helper');
		$user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) );
		$user->set('block', '1');

		/*
	 	 * Lets save the JUser object
	 	 */
		echo JUtility::dump($user);
		die();
		if (!$user->save())
		{
			JError::raiseWarning( '' , JText::_('CANNOT SAVE THE USER INFORMATION') . ': ' . JText::_( $user->getError() ) );
			return false;
		}
		$this->id_user = $user->id;

		$subject = JText::_('NEW_USER_MESSAGE_SUBJECT');
		$message = sprintf ( JText::_('NEW_USER_MESSAGE'), $user->get('name'), $SiteName, JURI::root(), $user->get('username'), $user->password_clear );

		// Send registration confirmation mail
		$password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW);
		$password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email

		include( JPATH_ROOT.DS.'components'.DS.'com_user'.DS.'controller.php' );
		UserController::_sendMail($user, $password);

		$mainframe->enqueueMessage( JText::sprintf( 'Successfully Saved User', $user->get('name') ) , 'message' );
		return true;
	}
}
